package interview17
// 面试题 17.09. 第 k 个数
// 有些数的素因子只有 3，5，7，请设计一个算法找出第 k 个数。
// 注意，不是必须有这些素因子，而是必须不包含其他的素因子。
// 例如，前几个数按顺序应该是 1，3，5，7，9，15，21。

// 1 3 5 
func getKthMagicNumber(k int) int {
	res := make([]int,k)
	res[0]=1
	pointA,pointB,pointC := 0,0,0   // res中指针 当前结果，由前三个数和3 5 7的乘积觉得
	for i:=1;i<k;i++{
		resultN := min(res[pointA]*3, min(res[pointB]*5, res[pointC]*7))
		if resultN%3==0 {
			pointA++
		}
		if resultN%5==0{
			pointB++
		}
		if resultN%7==0{
			pointC++
		}
		res[i] = resultN
	}
	return res[k-1]
}

func min1(a,b int) int {
	if a<b {return a}
	return b
}